﻿using System;
using System.Linq;
using System.Data.Linq;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using BHXH.LinqRepository;
//using BHXH.Repository;01677614731
using Lists;
using System.Text.RegularExpressions;
using System.Data.SqlClient;
using DevExpress.XtraGrid.Views.Grid;
using BHXH.Repository;

namespace BHXH2014.Phieu.PhieuA
{
    public partial class FrmEditPhieuA : BHXH.Repository.FrmEditPhieu
    {
        bool _SavedOK = true;
        bool _NeedPreventInitNewRow = false;
        bool _NeedCheckDataNullInGridView = false;

        EditState _EditState = EditState.Undefined;
        BHXH.LinqRepository.CauHoiDapAnRepository _repCauhoiDA = new BHXH.LinqRepository.CauHoiDapAnRepository();

        ChiTietPhieuRepository _repChiTietPhieu = new ChiTietPhieuRepository();
        CoQuanRepository _repCoQuan = new CoQuanRepository();
        NguoiTraLoiPVRepository _repNguoiTraloiPV = new NguoiTraLoiPVRepository();
        DanhMucPhieuRepository _repPhieu = new DanhMucPhieuRepository();

        //
        List<BHXH.LinqRepository.Phieu_DangBang> lstSource = new List<BHXH.LinqRepository.Phieu_DangBang>();
        //
        //BHXH.Repository.EditState _EditState = BHXH.Repository.EditState.Undefined;
        BHXH.LinqRepository.Phieu _PhieuA = null;

        public FrmEditPhieuA()
        {
            InitializeComponent();
        }

        public FrmEditPhieuA(BHXH.LinqRepository.Phieu phieuA)
        {
            InitializeComponent();
            if (phieuA != null)
                _EditState = BHXH.Repository.EditState.Modifying;
            else
                _EditState = BHXH.Repository.EditState.CreatingNew;
            _PhieuA = phieuA;
        }

        protected void SetEditState(BHXH.Repository.EditState editState)
        {
            try
            {
                _EditState = editState;

                base.SetEditState(editState);
                switch (editState)
                {
                    case BHXH.Repository.EditState.CreatingNew:
                    case BHXH.Repository.EditState.Modifying:
                        btnSave.Enabled = true;
                        btnEdit.Enabled = false;
                        btnClose.Enabled = true;
                        //btnLuu.Enabled = true;
                        //btnSua.Enabled = false;
                        //btnDong.Enabled = true;

                        //btnLuu2.Enabled = true;
                        //btnDong2.Enabled = true;
                        //btnSua2.Enabled = false;

                        txtPhuongXa.ReadOnly = false;
                        txtSoNha.ReadOnly = false;
                        txtQuanHuyen.ReadOnly = false;
                        txtTinhThanh.ReadOnly = false;
                        break;
                    case BHXH.Repository.EditState.Saved:
                        btnSave.Enabled = false;
                        btnEdit.Enabled = true;
                        btnClose.Enabled = true;
                        //btnLuu.Enabled = false;
                        //btnSua.Enabled = true;
                        //btnDong.Enabled = true;

                        //btnLuu2.Enabled = false;
                        //btnDong2.Enabled = true;
                        //btnSua2.Enabled = true;

                        txtPhuongXa.ReadOnly = true;
                        txtSoNha.ReadOnly = true;
                        txtQuanHuyen.ReadOnly = true;
                        txtTinhThanh.ReadOnly = true;
                        break;
                }
            }
            catch (Exception ex)
            {
            }
        }

        #region lost focus

        void nmr36_8_LostFocus(object sender, EventArgs e)
        {
            if (!nmr36_8.Text.Trim().Contains("4"))
            {
                nmr36_9.Focus();
            }
        }
        void nmr36_7_LostFocus(object sender, EventArgs e)
        {
            if (!nmr36_7.Text.Trim().Contains("4"))
            {
                nmr36_8.Focus();
            }
        }
        void nmr36_2_LostFocus(object sender, EventArgs e)
        {
            if (!nmr36_2.Text.Trim().Contains("4"))
            {
                nmr36_3.Focus();
            }
        }
        void nmr36_1_LostFocus(object sender, EventArgs e)
        {
            if (!nmr36_1.Text.Trim().Contains("4"))
            {
                nmr36_2.Focus();
            }
        }
        void nmr31_LostFocus(object sender, EventArgs e)
        {
            if (nmr31.Text.Trim() == "2")
            {
                nmr36_1.Focus();
            }
        }
        void nmr30_LostFocus(object sender, EventArgs e)
        {
            if (nmr30.Text.Trim() == "1")
            {
                nmr32.Focus();
            }
        }
        void nmr28_LostFocus(object sender, EventArgs e)
        {
            if (nmr28.Text.Trim() != "1")
            {
                nmr30.Focus();
            }
        }
        void nmr25_LostFocus(object sender, EventArgs e)
        {
            if (!nmr25.Text.Trim().Contains("7"))
            {
                nmr26.Focus();
            }
        }
        void nmr20_LostFocus(object sender, EventArgs e)
        {
            if (!nmr20.Text.Trim().Contains("5"))
            {
                nmr21.Focus();
            }
        }
        void nmr18_LostFocus(object sender, EventArgs e)
        {
            if (!nmr18.Text.Trim().Contains("5"))
            {
                nmr19.Focus();
            }
        }

        void txtKhac36_9_LostFocus(object sender, EventArgs e)
        {
            Save();
            if (_SavedOK)
            {
                this.Dispose();
                FrmDanhSachPhieuA.CreateNew(true);
            }
        }
        #endregion lost focus

        private void FrmEditPhieuA_Load(object sender, EventArgs e)
        {
            try
            {
                lblTitle.Text = "BỘ LAO ĐỘNG -THƯƠNG BINH VÀ XÃ HỘI\nVỤ BẢO HIỂM XÃ HỘI";
                lblLoaiPhieu.Text = "Phiếu A";
                lblDienGiai.Text = "PHIẾU ĐIỀU TRA THỰC HIỆN PHÁP LUẬT BẢO HIỂM XÃ HỘI TỰ NGUYỆN Ở VIỆT NAM\n " +
                    "(Dành cho người lao động)";

                nmr18.LostFocus += new EventHandler(nmr18_LostFocus);
                nmr20.LostFocus += new EventHandler(nmr20_LostFocus);
                nmr25.LostFocus += new EventHandler(nmr25_LostFocus);
                nmr28.LostFocus += new EventHandler(nmr28_LostFocus);
                nmr30.LostFocus += new EventHandler(nmr30_LostFocus);
                nmr31.LostFocus += new EventHandler(nmr31_LostFocus);
                nmr36_1.LostFocus += new EventHandler(nmr36_1_LostFocus);
                nmr36_2.LostFocus += new EventHandler(nmr36_2_LostFocus);
                nmr36_7.LostFocus += new EventHandler(nmr36_7_LostFocus);
                nmr36_8.LostFocus += new EventHandler(nmr36_8_LostFocus);
                txtKhac36_9.LostFocus += new EventHandler(txtKhac36_9_LostFocus);

                #region Load thông tin phiếu
                if (_PhieuA == null)
                {
                    //_PhieuB = DanhMucPhieu.Instance.NewDoiTuong();
                    SetEditState(EditState.CreatingNew);
                    //Lay gia tri tang dan
                    txtMaPhieu.Text = _repPhieu.getNextMaPhieu("PhieuA");
                    //phieuObj = new BHXH.LinqRepository.Phieu();
                    _PhieuA = new BHXH.LinqRepository.Phieu();
                }
                else
                {
                    NhanVienDT_GSRepository nhanviendieutraRepository = new NhanVienDT_GSRepository();
                    if (_PhieuA.NVDieuTraID.HasValue)
                    {
                        NhanVienDT_G nhanvienDTG = nhanviendieutraRepository.GetByID(_PhieuA.NVDieuTraID.Value);
                        if (nhanvienDTG != null)
                        {
                            txtDieuTraVien.Text = nhanvienDTG.HoTen;
                            txtToTruong.Text = nhanvienDTG.DienThoai;
                        }
                    }

                    txtMaPhieu.Text = _PhieuA.MaPhieu;
                    BHXH.LinqRepository.CoQuan coQuan = _repCoQuan.GetByID(_PhieuA.CoQuanID);

                    dateNgayPV.DateTime = _PhieuA.NgayPV;


                    BHXH.LinqRepository.NguoiTraLoiPV nguoiduocpv = _repNguoiTraloiPV.GetById(_PhieuA.NguoiTraLoiPVID);
                    if (nguoiduocpv != null)
                    {
                        txtHoTenNguoiDuocPV.Text = nguoiduocpv.HoTen;
                        if (nguoiduocpv.GioiTinh) txtGioiTinh.Text = "1";
                        else txtGioiTinh.Text = "2";
                        numericTexBoxNamSinh.Text = nguoiduocpv.NamSinh.ToString();
                        numericTexBoxTuoiTron.Text = nguoiduocpv.Tuoi.ToString();
                        txtDienThoaiLienHe.Text = nguoiduocpv.DienThoai;
                        txtDanToc.Text = nguoiduocpv.ChucVu;
                    }
                    if (coQuan != null)
                    {
                        txtTenCoQuan.Text = coQuan.Ten;
                        txtTinhThanh.Text = coQuan.Ten;

                        // BHXH.LinqRepository.CoQuan coQuan = new BHXH.LinqRepository.CoQuan();
                        cmbQuanHuyen.EditValue = coQuan.QuanHuyenID;
                        cmbTinhThanh.EditValue = coQuan.TinhID;
                        txtPhuongXa.Text = coQuan.PhuongXa;
                    }

                    BHXH.LinqRepository.ChiTietPhieu ctp = null;

                    ctp = _repChiTietPhieu.GetByPhieuID_MaCau(_PhieuA.ID, 5);
                    if (ctp != null)
                    {
                        nmr5.Text = ctp.CauTraLoiFIX1;
                    }

                    ctp = _repChiTietPhieu.GetByPhieuID_MaCau(_PhieuA.ID, 6);
                    if (ctp != null)
                    {
                        nmr6.Text = ctp.CauTraLoiFIX1;
                    }

                    ctp = _repChiTietPhieu.GetByPhieuID_MaCau(_PhieuA.ID, 7);
                    if (ctp != null)
                    {
                        nmr7.Text = ctp.CauTraLoiFIX1;
                    }

                    ctp = _repChiTietPhieu.GetByPhieuID_MaCau(_PhieuA.ID, 8);
                    if (ctp != null)
                    {
                        nmr8.Text = ctp.CauTraLoiFIX1;
                    }
                    ctp = _repChiTietPhieu.GetByPhieuID_MaCau(_PhieuA.ID, 9);
                    if (ctp != null)
                    {
                        txt9.Text = ctp.CauTraLoiText1;
                    }

                    ctp = _repChiTietPhieu.GetByPhieuID_MaCau(_PhieuA.ID, 10);
                    if (ctp != null)
                    {
                        nmr10.Text = ctp.CauTraLoiFIX1;
                    }
                    ctp = _repChiTietPhieu.GetByPhieuID_MaCau(_PhieuA.ID, 11);
                    if (ctp != null)
                    {
                        nmr11.Text = ctp.CauTraLoiFIX1;
                    }

                    ctp = _repChiTietPhieu.GetByPhieuID_MaCau(_PhieuA.ID, 12);
                    if (ctp != null)
                    {
                        nmr12.Text = ctp.CauTraLoiFIX1;
                    }

                    ctp = _repChiTietPhieu.GetByPhieuID_MaCau(_PhieuA.ID, 13);
                    if (ctp != null)
                    {
                        nmr13.Text = ctp.CauTraLoiFIX1;
                    }

                    ctp = _repChiTietPhieu.GetByPhieuID_MaCau(_PhieuA.ID, 14);
                    if (ctp != null)
                    {
                        nmr14.Text = ctp.CauTraLoiFIX1;
                    }

                    ctp = _repChiTietPhieu.GetByPhieuID_MaCau(_PhieuA.ID, 15);
                    if (ctp != null)
                    {
                        nmr15.Text = ctp.CauTraLoiFIX1;
                    }

                    ctp = _repChiTietPhieu.GetByPhieuID_MaCau(_PhieuA.ID, 16);
                    if (ctp != null)
                    {
                        nmr16.Text = ctp.CauTraLoiFIX1;
                    }

                    ctp = _repChiTietPhieu.GetByPhieuID_MaCau(_PhieuA.ID, 17);
                    if (ctp != null)
                    {
                        nmr17.Text = ctp.CauTraLoiFIX1;
                    }

                    ctp = _repChiTietPhieu.GetByPhieuID_MaCau(_PhieuA.ID, 18);
                    if (ctp != null)
                    {
                        nmr18.Text = ctp.CauTraLoiFIX1;
                        txtKhac18.Text = ctp.CauTraLoiText1;
                    }

                    ctp = _repChiTietPhieu.GetByPhieuID_MaCau(_PhieuA.ID, 19);
                    if (ctp != null)
                    {
                        nmr19.Text = ctp.CauTraLoiFIX1;
                    }

                    ctp = _repChiTietPhieu.GetByPhieuID_MaCau(_PhieuA.ID, 20);
                    if (ctp != null)
                    {
                        nmr20.Text = ctp.CauTraLoiFIX1;
                        txtKhac20.Text = ctp.CauTraLoiText1;
                    }

                    ctp = _repChiTietPhieu.GetByPhieuID_MaCau(_PhieuA.ID, 21);
                    if (ctp != null)
                    {
                        nmr21.Text = ctp.CauTraLoiText1;
                        nmr21_1.Text = ctp.CauTraLoiText2;
                        nmr21_2.Text = ctp.CauTraLoiText3;
                        nmr21_3.Text = ctp.CauTraLoiText4;
                    }

                    ctp = _repChiTietPhieu.GetByPhieuID_MaCau(_PhieuA.ID, 22);
                    if (ctp != null)
                    {
                        nmr22.Text = ctp.CauTraLoiFIX1;
                    }

                    ctp = _repChiTietPhieu.GetByPhieuID_MaCau(_PhieuA.ID, 23);
                    if (ctp != null)
                    {
                        nmr23_1.Text = ctp.CauTraLoiText1;
                        nmr23_2.Text = ctp.CauTraLoiText2;
                        nmr23_3.Text = ctp.CauTraLoiText3;
                        nmr23_4.Text = ctp.CauTraLoiText4;
                        nmr23_5.Text = ctp.CauTraLoiText5;
                        nmr23_6.Text = ctp.CauTraLoiText6;
                    }

                    ctp = _repChiTietPhieu.GetByPhieuID_MaCau(_PhieuA.ID, 24);
                    if (ctp != null)
                    {
                        nmr24_1.Text = ctp.CauTraLoiText1;
                        nmr24_2.Text = ctp.CauTraLoiText2;
                        nmr24_3.Text = ctp.CauTraLoiText3;
                        nmr24_4.Text = ctp.CauTraLoiText4;
                        nmr24_5.Text = ctp.CauTraLoiText5;
                        nmr24_6.Text = ctp.CauTraLoiText6;
                        nmr24_7.Text = ctp.CauTraLoiText7;
                    }

                    ctp = _repChiTietPhieu.GetByPhieuID_MaCau(_PhieuA.ID, 25);
                    if (ctp != null)
                    {
                        nmr25.Text = ctp.CauTraLoiFIX1;
                        txtKhac25.Text = ctp.CauTraLoiText1;
                    }

                    ctp = _repChiTietPhieu.GetByPhieuID_MaCau(_PhieuA.ID, 26);
                    if (ctp != null)
                    {
                        nmr26.Text = ctp.CauTraLoiFIX1;
                    }

                    ctp = _repChiTietPhieu.GetByPhieuID_MaCau(_PhieuA.ID, 27);
                    if (ctp != null)
                    {
                        nmr27.Text = ctp.CauTraLoiFIX1;
                    }

                    ctp = _repChiTietPhieu.GetByPhieuID_MaCau(_PhieuA.ID, 28);
                    if (ctp != null)
                    {
                        nmr28.Text = ctp.CauTraLoiFIX1;
                    }

                    ctp = _repChiTietPhieu.GetByPhieuID_MaCau(_PhieuA.ID, 29);
                    if (ctp != null)
                    {
                        nmr29.Text = ctp.CauTraLoiFIX1;
                    }

                    ctp = _repChiTietPhieu.GetByPhieuID_MaCau(_PhieuA.ID, 30);
                    if (ctp != null)
                    {
                        nmr30.Text = ctp.CauTraLoiFIX1;
                    }

                    ctp = _repChiTietPhieu.GetByPhieuID_MaCau(_PhieuA.ID, 31);
                    if (ctp != null)
                    {
                        nmr31.Text = ctp.CauTraLoiFIX1;
                    }

                    ctp = _repChiTietPhieu.GetByPhieuID_MaCau(_PhieuA.ID, 32);
                    if (ctp != null)
                    {
                        nmr32.Text = ctp.CauTraLoiFIX1;
                    }

                    ctp = _repChiTietPhieu.GetByPhieuID_MaCau(_PhieuA.ID, 33);
                    if (ctp != null)
                    {
                        nmr33.Text = ctp.CauTraLoiFIX1;
                    }

                    ctp = _repChiTietPhieu.GetByPhieuID_MaCau(_PhieuA.ID, 34);
                    if (ctp != null)
                    {
                        nmr34.Text = ctp.CauTraLoiFIX1;
                    }

                    ctp = _repChiTietPhieu.GetByPhieuID_MaCau(_PhieuA.ID, 35);
                    if (ctp != null)
                    {
                        nmr35.Text = ctp.CauTraLoiFIX1;
                    }

                    ctp = _repChiTietPhieu.GetByPhieuID_MaCau(_PhieuA.ID, 36);
                    if (ctp != null)
                    {
                        nmr36_1.Text = ctp.CauTraLoiFIX1;
                        txtKhac36_1.Text = ctp.CauTraLoiText1;

                        nmr36_2.Text = ctp.CauTraLoiFIX2;
                        txtKhac36_2.Text = ctp.CauTraLoiText2;

                        nmr36_3.Text = ctp.CauTraLoiFIX3;
                        nmr36_4.Text = ctp.CauTraLoiFIX4;
                        nmr36_5.Text = ctp.CauTraLoiFIX5;
                        nmr36_6.Text = ctp.CauTraLoiFIX6;
                        txtKhac36_3.Text = ctp.CauTraLoiText3;

                        nmr36_7.Text = ctp.CauTraLoiFIX7;
                        txtKhac36_7.Text = ctp.CauTraLoiText7;

                        nmr36_8.Text = ctp.CauTraLoiFIX8;
                        txtKhac36_8.Text = ctp.CauTraLoiText8;

                        nmr36_9.Text = ctp.CauTraLoiFIX9;
                        txtKhac36_9.Text = ctp.CauTraLoiText9;
                    }

                    SetEditState(EditState.Saved);
                }

                #endregion

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                txtMaPhieu.SelectAll();
                txtMaPhieu.Focus();

            }
        }

        private void txtGioiTinh_TextChanged(object sender, EventArgs e)
        {

        }

        private void nmr5_TextChanged(object sender, EventArgs e)
        {
            string maTraLoi = nmr5.Text.Trim();
            SetCauTraLoi(nmr5, "PhieuA", maTraLoi, 5, 0, tl5);
        }
        private void nmr6_TextChanged(object sender, EventArgs e)
        {
            string maTraLoi = nmr6.Text.Trim();
            SetCauTraLoi(nmr6, "PhieuA", maTraLoi, 6, 0, tl6);
        }
        private void nmr7_TextChanged(object sender, EventArgs e)
        {
            string maTraLoi = nmr7.Text.Trim();
            SetCauTraLoi(nmr7, "PhieuA", maTraLoi, 7, 0, tl7);
        }
        private void nmr8_TextChanged(object sender, EventArgs e)
        {
            string maTraLoi = nmr8.Text.Trim();
            SetCauTraLoi(nmr8, "PhieuA", maTraLoi, 8, 0, tl8);
        }
        private void nmr10_TextChanged(object sender, EventArgs e)
        {
            string maTraLoi = nmr10.Text.Trim();
            SetCauTraLoi(nmr10, "PhieuA", maTraLoi, 10, 0, tl10);
        }
        private void nmr11_TextChanged(object sender, EventArgs e)
        {
            string maTraLoi = nmr11.Text.Trim();
            SetCauTraLoi(nmr11, "PhieuA", maTraLoi, 11, 0, tl11);
        }
        private void nmr12_TextChanged(object sender, EventArgs e)
        {
            string maTraLoi = nmr12.Text.Trim();
            SetCauTraLoi(nmr12, "PhieuA", maTraLoi, 12, 0, tl12);
        }
        private void nmr13_TextChanged(object sender, EventArgs e)
        {
            string maTraLoi = nmr13.Text.Trim();
            SetCauTraLoiDuocChonNhieuMa(nmr13, "PhieuA", maTraLoi, 13, 0, tl13);
        }

        private void nmr14_TextChanged(object sender, EventArgs e)
        {
            string maTraLoi = nmr14.Text.Trim();
            SetCauTraLoiDuocChonNhieuMa(nmr14, "PhieuA", maTraLoi, 14, 0, tl14);
        }
        private void nmr15_TextChanged(object sender, EventArgs e)
        {
            string maTraLoi = nmr15.Text.Trim();
            SetCauTraLoi(nmr15, "PhieuA", maTraLoi, 15, 0, tl15);
        }
        private void nmr16_TextChanged(object sender, EventArgs e)
        {
            string maTraLoi = nmr16.Text.Trim();
            SetCauTraLoi(nmr16, "PhieuA", maTraLoi, 16, 0, tl16);
        }
        private void nmr17_TextChanged(object sender, EventArgs e)
        {
            string maTraLoi = nmr17.Text.Trim();
            SetCauTraLoi(nmr17, "PhieuA", maTraLoi, 17, 0, tl17);
            //SetCauTraLoiDuocChonNhieuMa(nmr17, maTraLoi, 17, 0, tl17);
        }
        private void nmr18_TextChanged(object sender, EventArgs e)
        {
            string maTraLoi = nmr18.Text.Trim();
            SetCauTraLoiDuocChonNhieuMa(nmr18, "PhieuA", maTraLoi, 18, 0, tl18);
        }
        private void nmr19_TextChanged(object sender, EventArgs e)
        {
            string maTraLoi = nmr19.Text.Trim();
            SetCauTraLoi(nmr19, "PhieuA", maTraLoi, 19, 0, tl19);
        }
        private void nmr20_TextChanged(object sender, EventArgs e)
        {
            string maTraLoi = nmr20.Text.Trim();
            //SetCauTraLoi(nmr20, "PhieuA", maTraLoi, 20, 0, tl20);
            SetCauTraLoiDuocChonNhieuMa(nmr20, "PhieuA", maTraLoi, 20, 0, tl20);
        }

        private void nmr22_TextChanged(object sender, EventArgs e)
        {
            string maTraLoi = nmr22.Text.Trim();
            SetCauTraLoiDuocChonNhieuMa(nmr22, "PhieuA", maTraLoi, 22, 0, tl22);
        }
        private void nmr25_TextChanged(object sender, EventArgs e)
        {
            string maTraLoi = nmr25.Text.Trim();
            //SetCauTraLoi(nmr25, "PhieuA", maTraLoi, 25, 0, tl25);
            SetCauTraLoiDuocChonNhieuMa(nmr25, "PhieuA", maTraLoi, 25, 0, tl25);
        }
        private void nmr26_TextChanged(object sender, EventArgs e)
        {
            string maTraLoi = nmr26.Text.Trim();
            SetCauTraLoi(nmr26, "PhieuA", maTraLoi, 26, 0, tl26);
        }
        private void nmr27_TextChanged(object sender, EventArgs e)
        {
            string maTraLoi = nmr27.Text.Trim();
            SetCauTraLoi(nmr27, "PhieuA", maTraLoi, 27, 0, tl27);
            //SetCauTraLoiDuocChonNhieuMa(nmr27, maTraLoi, 27, 0, tl27);
        }
        private void nmr28_TextChanged(object sender, EventArgs e)
        {
            string maTraLoi = nmr28.Text.Trim();
            SetCauTraLoi(nmr28, "PhieuA", maTraLoi, 28, 0, tl28);
        }

        private void nmr29_TextChanged(object sender, EventArgs e)
        {
            string maTraLoi = nmr29.Text.Trim();
            SetCauTraLoi(nmr29, "PhieuA", maTraLoi, 29, 0, tl29);
            //SetCauTraLoiDuocChonNhieuMa(nmr29, maTraLoi, 29, 0, tl29);
        }
        private void nmr30_TextChanged(object sender, EventArgs e)
        {
            string maTraLoi = nmr30.Text.Trim();
            SetCauTraLoi(nmr30, "PhieuA", maTraLoi, 30, 0, tl30);
        }
        private void nmr31_TextChanged(object sender, EventArgs e)
        {
            string maTraLoi = nmr31.Text.Trim();
            SetCauTraLoi(nmr31, "PhieuA", maTraLoi, 31, 0, tl31);
        }
        private void nmr32_TextChanged(object sender, EventArgs e)
        {
            string maTraLoi = nmr32.Text.Trim();
            SetCauTraLoi(nmr32, "PhieuA", maTraLoi, 32, 0, tl32);
        }
        private void nmr33_TextChanged(object sender, EventArgs e)
        {
            string maTraLoi = nmr33.Text.Trim();
            SetCauTraLoi(nmr33, "PhieuA", maTraLoi, 33, 0, tl33);
        }
        private void nmr34_TextChanged(object sender, EventArgs e)
        {
            string maTraLoi = nmr34.Text.Trim();
            SetCauTraLoi(nmr34, "PhieuA", maTraLoi, 34, 0, tl34);
        }
        private void nmr35_TextChanged(object sender, EventArgs e)
        {
            string maTraLoi = nmr35.Text.Trim();
            SetCauTraLoi(nmr35, "PhieuA", maTraLoi, 35, 0, tl35);
        }

        private void nmr36_1_TextChanged(object sender, EventArgs e)
        {
            string maTraLoi = nmr36_1.Text.Trim();
            SetCauTraLoi(nmr36_1, "PhieuA", maTraLoi, 36, 0, tl36_1);

        }
        private void nmr36_2_TextChanged(object sender, EventArgs e)
        {
            string maTraLoi = nmr36_2.Text.Trim();
            SetCauTraLoi(nmr36_2, "PhieuA", maTraLoi, 36, 1, tl36_2);
        }
        private void nmr36_3_TextChanged(object sender, EventArgs e)
        {
            string maTraLoi = nmr36_3.Text.Trim();
            SetCauTraLoi(nmr36_3, "PhieuA", maTraLoi, 36, 2, tl36_3_1);
        }
        private void nmr36_4_TextChanged(object sender, EventArgs e)
        {
            string maTraLoi = nmr36_4.Text.Trim();
            SetCauTraLoi(nmr36_4, "PhieuA", maTraLoi, 36, 3, tl36_3_2);
        }
        private void nmr36_5_TextChanged(object sender, EventArgs e)
        {
            string maTraLoi = nmr36_5.Text.Trim();
            SetCauTraLoi(nmr36_5, "PhieuA", maTraLoi, 36, 4, tl36_3_3);
        }
        private void nmr36_6_TextChanged(object sender, EventArgs e)
        {
            string maTraLoi = nmr36_6.Text.Trim();
            SetCauTraLoi(nmr36_6, "PhieuA", maTraLoi, 36, 5, tl36_3_4);
        }

        private void nmr36_7_TextChanged(object sender, EventArgs e)
        {
            string maTraLoi = nmr36_7.Text.Trim();
            SetCauTraLoi(nmr36_7, "PhieuA", maTraLoi, 36, 6, tl36_4);
        }
        private void nmr36_8_TextChanged(object sender, EventArgs e)
        {
            string maTraLoi = nmr36_8.Text.Trim();
            SetCauTraLoi(nmr36_8, "PhieuA", maTraLoi, 36, 7, tl36_5);
        }
        private void nmr36_9_TextChanged(object sender, EventArgs e)
        {
            string maTraLoi = nmr36_9.Text.Trim();
            SetCauTraLoi(nmr36_9, "PhieuA", maTraLoi, 36, 8, tl36_6);
        }

        protected override bool CheckFullInfo()
        {
            if (txtMaPhieu.Text.Trim() == "")
                throw new Exception("Chưa số phiếu");
            if (dateNgayPV.EditValue == null)
                throw new Exception("Chưa chọn ngày tháng phỏng vấn");
            if (txtHoTenNguoiDuocPV.Text.Trim() == "")
                throw new Exception("Chưa điền người được PV");
            if (txtGioiTinh.Text.Trim() == "")
                throw new Exception("Thiếu thông tin giới tính");
            if (txtDanToc.Text.Trim() == "")
                throw new Exception("Thiếu thông tin dân tộc");
            // if (nmr4.Text == "") throw new Exception("Thiếu thông tin tại câu 4");
            if (nmr5.Text == "") throw new Exception("Thiếu thông tin tại câu 5");

            if (nmr6.Text == "") throw new Exception("Thiếu thông tin tại câu 6");
            if (nmr7.Text == "") throw new Exception("Thiếu thông tin tại câu 7");
            if (nmr8.Text == "") throw new Exception("Thiếu thông tin tại câu 8");
            if (txt9.Text == "") throw new Exception("Thiếu thông tin tại câu 9");
            if (nmr10.Text == "") throw new Exception("Thiếu thông tin tại câu 10");

            if (nmr11.Text == "") throw new Exception("Thiếu thông tin tại câu 11");
            if (nmr12.Text == "") throw new Exception("Thiếu thông tin tại câu 12");
            if (nmr13.Text == "") throw new Exception("Thiếu thông tin tại câu 13");
            if (nmr14.Text == "") throw new Exception("Thiếu thông tin tại câu 14");
            if (nmr15.Text == "") throw new Exception("Thiếu thông tin tại câu 15");
            if (nmr16.Text == "") throw new Exception("Thiếu thông tin tại câu 16");
            if (nmr17.Text == "") throw new Exception("Thiếu thông tin tại câu 17");
            if (nmr18.Text == "") throw new Exception("Thiếu thông tin tại câu 18");
            if (nmr19.Text == "") throw new Exception("Thiếu thông tin tại câu 19");
            if (nmr20.Text == "" && nmr19.Text == "1") throw new Exception("Thiếu thông tin tại câu 20");

            if (nmr21.Text == "") throw new Exception("Thiếu thông tin tại câu 21");
            if (nmr21_1.Text == "") throw new Exception("Thiếu thông tin tại câu 21");
            if (nmr21_2.Text == "") throw new Exception("Thiếu thông tin tại câu 21");
            if (nmr21_3.Text == "") throw new Exception("Thiếu thông tin tại câu 21");

            if (nmr22.Text == "") throw new Exception("Thiếu thông tin tại câu 22");

            if (nmr23_1.Text == "") throw new Exception("Thiếu thông tin tại câu 23");
            if (nmr23_2.Text == "") throw new Exception("Thiếu thông tin tại câu 23");
            if (nmr23_3.Text == "") throw new Exception("Thiếu thông tin tại câu 23");
            if (nmr23_4.Text == "") throw new Exception("Thiếu thông tin tại câu 23");
            if (nmr23_5.Text == "") throw new Exception("Thiếu thông tin tại câu 23");
            if (nmr23_6.Text == "") throw new Exception("Thiếu thông tin tại câu 23");

            if (nmr24_1.Text == "") throw new Exception("Thiếu thông tin tại câu 24");
            if (nmr24_2.Text == "") throw new Exception("Thiếu thông tin tại câu 24");
            if (nmr24_3.Text == "") throw new Exception("Thiếu thông tin tại câu 24");
            if (nmr24_4.Text == "") throw new Exception("Thiếu thông tin tại câu 24");
            if (nmr24_5.Text == "") throw new Exception("Thiếu thông tin tại câu 24");
            if (nmr24_6.Text == "") throw new Exception("Thiếu thông tin tại câu 24");
            if (nmr24_7.Text == "") throw new Exception("Thiếu thông tin tại câu 24");

            if (nmr25.Text == "") throw new Exception("Thiếu thông tin tại câu 25");
            if (nmr26.Text == "") throw new Exception("Thiếu thông tin tại câu 26");
            if (nmr27.Text == "") throw new Exception("Thiếu thông tin tại câu 27");
            if (nmr28.Text == "") throw new Exception("Thiếu thông tin tại câu 28");
            if (nmr29.Text == "" && nmr28.Text == "1") throw new Exception("Thiếu thông tin tại câu 29");
            if (nmr30.Text == "") throw new Exception("Thiếu thông tin tại câu 30");
            if (nmr31.Text == "" && nmr30.Text == "2") throw new Exception("Thiếu thông tin tại câu 31");
            if (nmr32.Text == "" && nmr31.Text == "1") throw new Exception("Thiếu thông tin tại câu 32");
            if (nmr33.Text == "" && nmr31.Text == "1") throw new Exception("Thiếu thông tin tại câu 33");
            if (nmr34.Text == "" && nmr31.Text == "1") throw new Exception("Thiếu thông tin tại câu 34");
            if (nmr35.Text == "" && nmr31.Text == "1") throw new Exception("Thiếu thông tin tại câu 35");
            if (nmr36_1.Text == "") throw new Exception("Thiếu thông tin tại câu 36 a");
            if (nmr36_2.Text == "") throw new Exception("Thiếu thông tin tại câu 36 b");
            if (nmr36_3.Text == "") throw new Exception("Thiếu thông tin tại câu 36 c");
            if (nmr36_4.Text == "") throw new Exception("Thiếu thông tin tại câu 36 c");
            if (nmr36_5.Text == "") throw new Exception("Thiếu thông tin tại câu 36 c");
            if (nmr36_6.Text == "") throw new Exception("Thiếu thông tin tại câu 36 c");
            if (nmr36_7.Text == "") throw new Exception("Thiếu thông tin tại câu 36 d");
            if (nmr36_8.Text == "") throw new Exception("Thiếu thông tin tại câu 36 đ");
            if (nmr36_9.Text == "") throw new Exception("Thiếu thông tin tại câu 36 e");

            return true;
        }

        /// <summary>
        /// Save data
        /// </summary>
        protected override void Save()
        {
            try
            {
                CheckFullInfo();
                try
                {
                    BHXH.LinqRepository.Phieu phieuA = new BHXH.LinqRepository.Phieu();
                    if (_EditState == BHXH.Repository.EditState.CreatingNew)    //mỗi phiếu tạo mới là 1 người được PV mới
                    {
                        //Lưu tổ trưởng vào SĐT - phát sinh nhỏ không thêm trường
                        NhanVienDT_G nhanvienDTGS = new NhanVienDT_G();
                        nhanvienDTGS.HoTen = txtDieuTraVien.Text;
                        nhanvienDTGS.DienThoai = txtToTruong.Text;

                        NhanVienDT_GSRepository dieutravienRepository = new NhanVienDT_GSRepository();
                        dieutravienRepository.InsertOne(nhanvienDTGS);
                        dieutravienRepository.SubmitChanges();
                        phieuA.NVDieuTraID = nhanvienDTGS.ID;

                        NguoiTraLoiPV nguoitraloi = new NguoiTraLoiPV();
                        nguoitraloi.HoTen = txtHoTenNguoiDuocPV.Text.Trim();
                        if (txtGioiTinh.Text == "1") nguoitraloi.GioiTinh = true;
                        else nguoitraloi.GioiTinh = false;

                        nguoitraloi.NamSinh = Convert.ToInt32(numericTexBoxNamSinh.Text.Trim());
                        nguoitraloi.Tuoi = Convert.ToInt32(numericTexBoxTuoiTron.Text.Trim());
                        //nguoitraloi.ChucVu = txtChucVu.Text.Trim();
                        //  nguoitraloi.DienThoai = txtDienThoaiLienHe.Text.Trim();
                        nguoitraloi.ChucVu = txtDanToc.Text;

                        //nguoitraloi.ID = Guid.NewGuid();
                        _repNguoiTraloiPV.InsertOne(nguoitraloi);
                        _repNguoiTraloiPV.SubmitChanges();
                        //
                        BHXH.LinqRepository.CoQuan coQuan = new BHXH.LinqRepository.CoQuan();
                        coQuan.Ten = txtTinhThanh.Text;
                        coQuan.TinhID = (Guid)cmbTinhThanh.EditValue;
                        coQuan.QuanHuyenID = (Guid)cmbQuanHuyen.EditValue;
                        coQuan.PhuongXa = txtPhuongXa.Text.Trim();
                        //coQuan.Sonha_Pho = txtSoNha.Text.Trim();

                        _repCoQuan.InsertOne(coQuan);
                        _repCoQuan.SubmitChanges();
                        //
                        #region Phieu
                        phieuA.MaPhieu = "A" + txtMaPhieu.Text.Trim().Replace("A", "");
                        phieuA.LoaiPhieu = "PhieuA";
                        //phieuA.CoQuan = coQuan;
                        phieuA.NgayPV = dateNgayPV.DateTime;

                        // phieuA.NguoiTraLoiPV = nguoitraloi;

                        phieuA.CoQuanID = coQuan.ID;
                        phieuA.NguoiTraLoiPVID = nguoitraloi.ID;
                        #endregion

                        _repPhieu.InsertOne(phieuA);
                        _repPhieu.SubmitChanges();

                    }
                    else
                    {
                        NhanVienDT_GSRepository dieutravienRepository = new NhanVienDT_GSRepository();
                        NhanVienDT_G nhanvienDTGS = dieutravienRepository.GetByID(_PhieuA.NVDieuTraID.Value);
                        nhanvienDTGS.HoTen = txtDieuTraVien.Text;
                        nhanvienDTGS.DienThoai = txtToTruong.Text;
                        dieutravienRepository.SubmitChanges();

                        var nguoiDuocPV = _repNguoiTraloiPV.GetById(_PhieuA.NguoiTraLoiPVID);
                        nguoiDuocPV.HoTen = txtHoTenNguoiDuocPV.Text.Trim();
                        if (txtGioiTinh.Text == "1") nguoiDuocPV.GioiTinh = true;
                        else nguoiDuocPV.GioiTinh = false;
                        nguoiDuocPV.NamSinh = Convert.ToInt32(numericTexBoxNamSinh.Text.Trim());
                        nguoiDuocPV.Tuoi = Convert.ToInt32(numericTexBoxTuoiTron.Text.Trim());
                        // nguoiDuocPV.ChucVu = txtChucVu.Text.Trim();
                        nguoiDuocPV.DienThoai = txtDienThoaiLienHe.Text.Trim();

                        // nguoipv = nguoiDuocPV;
                        _repNguoiTraloiPV.EditOne(nguoiDuocPV);
                        _repNguoiTraloiPV.SubmitChanges();
                        //
                        // _repCoQuan.GetById
                        var coQuan = _repCoQuan.GetByID(_PhieuA.CoQuanID);
                        coQuan.Ten = txtTinhThanh.Text.Trim();
                        coQuan.TinhID = (Guid)cmbTinhThanh.EditValue;
                        coQuan.QuanHuyenID = (Guid)cmbQuanHuyen.EditValue;
                        coQuan.PhuongXa = txtPhuongXa.Text.Trim();
                        //coQuan.Sonha_Pho = txtSoNha.Text.Trim();
                        _repCoQuan.EditOne(coQuan);
                        _repCoQuan.SubmitChanges();
                        //
                        phieuA = _repPhieu.GetOneById(_PhieuA.ID);

                        #region Phieu
                        phieuA.MaPhieu = "A" + txtMaPhieu.Text.Trim().Replace("A", "");
                        phieuA.LoaiPhieu = "PhieuA";
                        // phieuA.CoQuan = coQuan;
                        phieuA.NgayPV = dateNgayPV.DateTime;
                        phieuA.NguoiTraLoiPVID = nguoiDuocPV.ID;
                        _repPhieu.SubmitChanges();
                        #endregion

                    }
                    //  _repPhieu.SubmitChanges();

                    #region Phieu Dang Bang

                    //InsertOrUpdateToDB(phieuA, source12, 12);

                    #endregion

                    #region chi tiết phiếu

                    BHXH.LinqRepository.ChiTietPhieu chiTietPhieu;
                    chiTietPhieu = _repChiTietPhieu.GetByPhieuID_MaCau(_PhieuA.ID, 5);
                    if (chiTietPhieu != null)
                    {
                        chiTietPhieu.CauTraLoiFIX1 = nmr5.Text;
                        _repChiTietPhieu.EditOne(chiTietPhieu);
                    }
                    else
                    {
                        chiTietPhieu = new BHXH.LinqRepository.ChiTietPhieu();
                        chiTietPhieu.PhieuID = phieuA.ID;
                        chiTietPhieu.MaCau = 5;
                        chiTietPhieu.CauTraLoiFIX1 = nmr5.Text;
                        _repChiTietPhieu.InsertOne(chiTietPhieu);
                    }

                    chiTietPhieu = _repChiTietPhieu.GetByPhieuID_MaCau(_PhieuA.ID, 6);
                    if (chiTietPhieu != null)
                    {
                        chiTietPhieu.CauTraLoiFIX1 = nmr6.Text;
                        _repChiTietPhieu.EditOne(chiTietPhieu);
                    }
                    else
                    {
                        chiTietPhieu = new BHXH.LinqRepository.ChiTietPhieu();
                        chiTietPhieu.PhieuID = phieuA.ID;
                        chiTietPhieu.MaCau = 6;
                        chiTietPhieu.CauTraLoiFIX1 = nmr6.Text;
                        _repChiTietPhieu.InsertOne(chiTietPhieu);
                    }

                    chiTietPhieu = _repChiTietPhieu.GetByPhieuID_MaCau(_PhieuA.ID, 7);
                    if (chiTietPhieu != null)
                    {
                        chiTietPhieu.CauTraLoiFIX1 = nmr7.Text;
                        _repChiTietPhieu.EditOne(chiTietPhieu);
                    }
                    else
                    {
                        chiTietPhieu = new BHXH.LinqRepository.ChiTietPhieu();
                        chiTietPhieu.PhieuID = phieuA.ID;
                        chiTietPhieu.MaCau = 7;
                        chiTietPhieu.CauTraLoiFIX1 = nmr7.Text;
                        _repChiTietPhieu.InsertOne(chiTietPhieu);
                    }


                    chiTietPhieu = _repChiTietPhieu.GetByPhieuID_MaCau(_PhieuA.ID, 8);
                    if (chiTietPhieu != null)
                    {
                        chiTietPhieu.CauTraLoiFIX1 = nmr8.Text;
                        _repChiTietPhieu.EditOne(chiTietPhieu);
                    }
                    else
                    {
                        chiTietPhieu = new BHXH.LinqRepository.ChiTietPhieu();
                        chiTietPhieu.PhieuID = phieuA.ID;
                        chiTietPhieu.MaCau = 8;
                        chiTietPhieu.CauTraLoiFIX1 = nmr8.Text;
                        _repChiTietPhieu.InsertOne(chiTietPhieu);
                    }

                    //9
                    chiTietPhieu = _repChiTietPhieu.GetByPhieuID_MaCau(_PhieuA.ID, 9);
                    if (chiTietPhieu != null)
                    {
                        chiTietPhieu.CauTraLoiText1 = txt9.Text;
                        _repChiTietPhieu.EditOne(chiTietPhieu);
                    }
                    else
                    {
                        chiTietPhieu = new BHXH.LinqRepository.ChiTietPhieu();
                        chiTietPhieu.PhieuID = phieuA.ID;
                        chiTietPhieu.MaCau = 9;
                        chiTietPhieu.CauTraLoiText1 = txt9.Text;
                        _repChiTietPhieu.InsertOne(chiTietPhieu);
                    }

                    //10
                    chiTietPhieu = _repChiTietPhieu.GetByPhieuID_MaCau(_PhieuA.ID, 10);
                    if (chiTietPhieu != null)
                    {
                        chiTietPhieu.CauTraLoiFIX1 = nmr10.Text;
                        _repChiTietPhieu.EditOne(chiTietPhieu);
                    }
                    else
                    {
                        chiTietPhieu = new BHXH.LinqRepository.ChiTietPhieu();
                        chiTietPhieu.PhieuID = phieuA.ID;
                        chiTietPhieu.MaCau = 10;
                        chiTietPhieu.CauTraLoiFIX1 = nmr10.Text;
                        _repChiTietPhieu.InsertOne(chiTietPhieu);
                    }

                    //11

                    chiTietPhieu = _repChiTietPhieu.GetByPhieuID_MaCau(_PhieuA.ID, 11);
                    if (chiTietPhieu != null)
                    {
                        chiTietPhieu.CauTraLoiFIX1 = nmr11.Text;
                        _repChiTietPhieu.EditOne(chiTietPhieu);
                    }
                    else
                    {
                        chiTietPhieu = new BHXH.LinqRepository.ChiTietPhieu();
                        chiTietPhieu.PhieuID = phieuA.ID;
                        chiTietPhieu.MaCau = 11;
                        chiTietPhieu.CauTraLoiFIX1 = nmr11.Text;
                        _repChiTietPhieu.InsertOne(chiTietPhieu);
                    }

                    //11
                    chiTietPhieu = _repChiTietPhieu.GetByPhieuID_MaCau(_PhieuA.ID, 11);
                    if (chiTietPhieu != null)
                    {
                        chiTietPhieu.CauTraLoiFIX1 = nmr11.Text;
                        _repChiTietPhieu.EditOne(chiTietPhieu);
                    }
                    else
                    {
                        chiTietPhieu = new BHXH.LinqRepository.ChiTietPhieu();
                        chiTietPhieu.PhieuID = phieuA.ID;
                        chiTietPhieu.MaCau = 11;
                        chiTietPhieu.CauTraLoiFIX1 = nmr11.Text;
                        _repChiTietPhieu.InsertOne(chiTietPhieu);
                    }

                    //12
                    chiTietPhieu = _repChiTietPhieu.GetByPhieuID_MaCau(_PhieuA.ID, 12);
                    if (chiTietPhieu != null)
                    {
                        chiTietPhieu.CauTraLoiFIX1 = nmr12.Text;
                        _repChiTietPhieu.EditOne(chiTietPhieu);
                    }
                    else
                    {
                        chiTietPhieu = new BHXH.LinqRepository.ChiTietPhieu();
                        chiTietPhieu.PhieuID = phieuA.ID;
                        chiTietPhieu.MaCau = 12;
                        chiTietPhieu.CauTraLoiFIX1 = nmr12.Text;
                        _repChiTietPhieu.InsertOne(chiTietPhieu);
                    }

                    //13
                    chiTietPhieu = _repChiTietPhieu.GetByPhieuID_MaCau(_PhieuA.ID, 13);
                    if (chiTietPhieu != null)
                    {
                        chiTietPhieu.CauTraLoiFIX1 = nmr13.Text;
                        _repChiTietPhieu.EditOne(chiTietPhieu);
                    }
                    else
                    {
                        chiTietPhieu = new BHXH.LinqRepository.ChiTietPhieu();
                        chiTietPhieu.PhieuID = phieuA.ID;
                        chiTietPhieu.MaCau = 13;
                        chiTietPhieu.CauTraLoiFIX1 = nmr13.Text;
                        _repChiTietPhieu.InsertOne(chiTietPhieu);
                    }
                    //14
                    chiTietPhieu = _repChiTietPhieu.GetByPhieuID_MaCau(_PhieuA.ID, 14);
                    if (chiTietPhieu != null)
                    {
                        chiTietPhieu.CauTraLoiFIX1 = nmr14.Text;
                        _repChiTietPhieu.EditOne(chiTietPhieu);
                    }
                    else
                    {
                        chiTietPhieu = new BHXH.LinqRepository.ChiTietPhieu();
                        chiTietPhieu.PhieuID = phieuA.ID;
                        chiTietPhieu.MaCau = 14;
                        chiTietPhieu.CauTraLoiFIX1 = nmr14.Text;
                        _repChiTietPhieu.InsertOne(chiTietPhieu);
                    }
                    //15
                    chiTietPhieu = _repChiTietPhieu.GetByPhieuID_MaCau(_PhieuA.ID, 15);
                    if (chiTietPhieu != null)
                    {
                        chiTietPhieu.CauTraLoiFIX1 = nmr15.Text;
                        _repChiTietPhieu.EditOne(chiTietPhieu);
                    }
                    else
                    {
                        chiTietPhieu = new BHXH.LinqRepository.ChiTietPhieu();
                        chiTietPhieu.PhieuID = phieuA.ID;
                        chiTietPhieu.MaCau = 15;
                        chiTietPhieu.CauTraLoiFIX1 = nmr15.Text;
                        _repChiTietPhieu.InsertOne(chiTietPhieu);
                    }

                    //16
                    chiTietPhieu = _repChiTietPhieu.GetByPhieuID_MaCau(_PhieuA.ID, 16);
                    if (chiTietPhieu != null)
                    {
                        chiTietPhieu.CauTraLoiFIX1 = nmr16.Text;
                        _repChiTietPhieu.EditOne(chiTietPhieu);
                    }
                    else
                    {
                        chiTietPhieu = new BHXH.LinqRepository.ChiTietPhieu();
                        chiTietPhieu.PhieuID = phieuA.ID;
                        chiTietPhieu.MaCau = 16;
                        chiTietPhieu.CauTraLoiFIX1 = nmr16.Text;
                        _repChiTietPhieu.InsertOne(chiTietPhieu);
                    }

                    //17
                    chiTietPhieu = _repChiTietPhieu.GetByPhieuID_MaCau(_PhieuA.ID, 17);
                    if (chiTietPhieu != null)
                    {
                        chiTietPhieu.CauTraLoiFIX1 = nmr17.Text;
                        chiTietPhieu.CauTraLoiText1 = txtKhac18.Text;
                        _repChiTietPhieu.EditOne(chiTietPhieu);
                    }
                    else
                    {
                        chiTietPhieu = new BHXH.LinqRepository.ChiTietPhieu();
                        chiTietPhieu.PhieuID = phieuA.ID;
                        chiTietPhieu.MaCau = 17;
                        chiTietPhieu.CauTraLoiFIX1 = nmr17.Text;
                        chiTietPhieu.CauTraLoiText1 = txtKhac18.Text;
                        _repChiTietPhieu.InsertOne(chiTietPhieu);
                    }

                    //18
                    chiTietPhieu = _repChiTietPhieu.GetByPhieuID_MaCau(_PhieuA.ID, 18);
                    if (chiTietPhieu != null)
                    {
                        chiTietPhieu.CauTraLoiFIX1 = nmr18.Text;
                        chiTietPhieu.CauTraLoiText1 = txtKhac18.Text;
                        _repChiTietPhieu.EditOne(chiTietPhieu);
                    }
                    else
                    {
                        chiTietPhieu = new BHXH.LinqRepository.ChiTietPhieu();
                        chiTietPhieu.PhieuID = phieuA.ID;
                        chiTietPhieu.MaCau = 18;
                        chiTietPhieu.CauTraLoiFIX1 = nmr18.Text;
                        chiTietPhieu.CauTraLoiText1 = txtKhac18.Text;
                        _repChiTietPhieu.InsertOne(chiTietPhieu);
                    }

                    //19
                    chiTietPhieu = _repChiTietPhieu.GetByPhieuID_MaCau(_PhieuA.ID, 19);
                    if (chiTietPhieu != null)
                    {
                        chiTietPhieu.CauTraLoiFIX1 = nmr19.Text;
                        _repChiTietPhieu.EditOne(chiTietPhieu);
                    }
                    else
                    {
                        chiTietPhieu = new BHXH.LinqRepository.ChiTietPhieu();
                        chiTietPhieu.PhieuID = phieuA.ID;
                        chiTietPhieu.MaCau = 19;
                        chiTietPhieu.CauTraLoiFIX1 = nmr19.Text;
                        _repChiTietPhieu.InsertOne(chiTietPhieu);
                    }

                    //20
                    chiTietPhieu = _repChiTietPhieu.GetByPhieuID_MaCau(_PhieuA.ID, 20);
                    if (chiTietPhieu != null)
                    {
                        chiTietPhieu.CauTraLoiFIX1 = nmr20.Text;
                        chiTietPhieu.CauTraLoiText1 = txtKhac20.Text;
                        _repChiTietPhieu.EditOne(chiTietPhieu);
                    }
                    else
                    {
                        chiTietPhieu = new BHXH.LinqRepository.ChiTietPhieu();
                        chiTietPhieu.PhieuID = phieuA.ID;
                        chiTietPhieu.MaCau = 20;
                        chiTietPhieu.CauTraLoiFIX1 = nmr20.Text;
                        chiTietPhieu.CauTraLoiText1 = txtKhac20.Text;
                        _repChiTietPhieu.InsertOne(chiTietPhieu);
                    }

                    //21
                    chiTietPhieu = _repChiTietPhieu.GetByPhieuID_MaCau(_PhieuA.ID, 21);
                    if (chiTietPhieu != null)
                    {
                        chiTietPhieu.CauTraLoiText1 = nmr21.Text;
                        chiTietPhieu.CauTraLoiText2 = nmr21_1.Text;
                        chiTietPhieu.CauTraLoiText3 = nmr21_2.Text;
                        chiTietPhieu.CauTraLoiText4 = nmr21_3.Text;
                        _repChiTietPhieu.EditOne(chiTietPhieu);
                    }
                    else
                    {
                        chiTietPhieu = new BHXH.LinqRepository.ChiTietPhieu();
                        chiTietPhieu.PhieuID = phieuA.ID;
                        chiTietPhieu.MaCau = 21;
                        chiTietPhieu.CauTraLoiText1 = nmr21.Text;
                        chiTietPhieu.CauTraLoiText2 = nmr21_1.Text;
                        chiTietPhieu.CauTraLoiText3 = nmr21_2.Text;
                        chiTietPhieu.CauTraLoiText4 = nmr21_3.Text;
                        _repChiTietPhieu.InsertOne(chiTietPhieu);
                    }

                    //22
                    chiTietPhieu = _repChiTietPhieu.GetByPhieuID_MaCau(_PhieuA.ID, 22);
                    if (chiTietPhieu != null)
                    {
                        chiTietPhieu.CauTraLoiFIX1 = nmr22.Text;
                        _repChiTietPhieu.EditOne(chiTietPhieu);
                    }
                    else
                    {
                        chiTietPhieu = new BHXH.LinqRepository.ChiTietPhieu();
                        chiTietPhieu.PhieuID = phieuA.ID;
                        chiTietPhieu.MaCau = 22;
                        chiTietPhieu.CauTraLoiFIX1 = nmr22.Text;
                        _repChiTietPhieu.InsertOne(chiTietPhieu);
                    }

                    //23
                    chiTietPhieu = _repChiTietPhieu.GetByPhieuID_MaCau(_PhieuA.ID, 23);
                    if (chiTietPhieu != null)
                    {
                        chiTietPhieu.CauTraLoiText1 = nmr23_1.Text;
                        chiTietPhieu.CauTraLoiText2 = nmr23_2.Text;
                        chiTietPhieu.CauTraLoiText3 = nmr23_3.Text;
                        chiTietPhieu.CauTraLoiText4 = nmr23_4.Text;
                        chiTietPhieu.CauTraLoiText5 = nmr23_5.Text;
                        chiTietPhieu.CauTraLoiText6 = nmr23_6.Text;
                        _repChiTietPhieu.EditOne(chiTietPhieu);
                    }
                    else
                    {
                        chiTietPhieu = new BHXH.LinqRepository.ChiTietPhieu();
                        chiTietPhieu.PhieuID = phieuA.ID;
                        chiTietPhieu.MaCau = 23;
                        chiTietPhieu.CauTraLoiText1 = nmr23_1.Text;
                        chiTietPhieu.CauTraLoiText2 = nmr23_2.Text;
                        chiTietPhieu.CauTraLoiText3 = nmr23_3.Text;
                        chiTietPhieu.CauTraLoiText4 = nmr23_4.Text;
                        chiTietPhieu.CauTraLoiText5 = nmr23_5.Text;
                        chiTietPhieu.CauTraLoiText6 = nmr23_6.Text;
                        _repChiTietPhieu.InsertOne(chiTietPhieu);
                    }
                    //24
                    chiTietPhieu = _repChiTietPhieu.GetByPhieuID_MaCau(_PhieuA.ID, 24);
                    if (chiTietPhieu != null)
                    {
                        chiTietPhieu.CauTraLoiText1 = nmr24_1.Text;
                        chiTietPhieu.CauTraLoiText2 = nmr24_2.Text;
                        chiTietPhieu.CauTraLoiText3 = nmr24_3.Text;
                        chiTietPhieu.CauTraLoiText4 = nmr24_4.Text;
                        chiTietPhieu.CauTraLoiText5 = nmr24_5.Text;
                        chiTietPhieu.CauTraLoiText6 = nmr24_6.Text;
                        chiTietPhieu.CauTraLoiText7 = nmr24_7.Text;
                        _repChiTietPhieu.EditOne(chiTietPhieu);
                    }
                    else
                    {
                        chiTietPhieu = new BHXH.LinqRepository.ChiTietPhieu();
                        chiTietPhieu.PhieuID = phieuA.ID;
                        chiTietPhieu.MaCau = 24;
                        chiTietPhieu.CauTraLoiText1 = nmr24_1.Text;
                        chiTietPhieu.CauTraLoiText2 = nmr24_2.Text;
                        chiTietPhieu.CauTraLoiText3 = nmr24_3.Text;
                        chiTietPhieu.CauTraLoiText4 = nmr24_4.Text;
                        chiTietPhieu.CauTraLoiText5 = nmr24_5.Text;
                        chiTietPhieu.CauTraLoiText6 = nmr24_6.Text;
                        chiTietPhieu.CauTraLoiText7 = nmr24_7.Text;
                        _repChiTietPhieu.InsertOne(chiTietPhieu);
                    }

                    //25
                    chiTietPhieu = _repChiTietPhieu.GetByPhieuID_MaCau(_PhieuA.ID, 25);
                    if (chiTietPhieu != null)
                    {
                        chiTietPhieu.CauTraLoiFIX1 = nmr25.Text;
                        chiTietPhieu.CauTraLoiText1 = txtKhac25.Text;
                        _repChiTietPhieu.EditOne(chiTietPhieu);
                    }
                    else
                    {
                        chiTietPhieu = new BHXH.LinqRepository.ChiTietPhieu();
                        chiTietPhieu.PhieuID = phieuA.ID;
                        chiTietPhieu.MaCau = 25;
                        chiTietPhieu.CauTraLoiFIX1 = nmr25.Text;
                        chiTietPhieu.CauTraLoiText1 = txtKhac25.Text;
                        _repChiTietPhieu.InsertOne(chiTietPhieu);
                    }

                    //26
                    chiTietPhieu = _repChiTietPhieu.GetByPhieuID_MaCau(_PhieuA.ID, 26);
                    if (chiTietPhieu != null)
                    {
                        chiTietPhieu.CauTraLoiFIX1 = nmr26.Text;
                        //chiTietPhieu.CauTraLoiText1 = txtKhac26.Text;
                        _repChiTietPhieu.EditOne(chiTietPhieu);
                    }
                    else
                    {
                        chiTietPhieu = new BHXH.LinqRepository.ChiTietPhieu();
                        chiTietPhieu.PhieuID = phieuA.ID;
                        chiTietPhieu.MaCau = 26;
                        chiTietPhieu.CauTraLoiFIX1 = nmr26.Text;
                        //  chiTietPhieu.CauTraLoiText1 = txtKhac26.Text;
                        _repChiTietPhieu.InsertOne(chiTietPhieu);
                    }

                    //27
                    chiTietPhieu = _repChiTietPhieu.GetByPhieuID_MaCau(_PhieuA.ID, 27);
                    if (chiTietPhieu != null)
                    {
                        chiTietPhieu.CauTraLoiFIX1 = nmr27.Text;
                        _repChiTietPhieu.EditOne(chiTietPhieu);
                    }
                    else
                    {
                        chiTietPhieu = new BHXH.LinqRepository.ChiTietPhieu();
                        chiTietPhieu.PhieuID = phieuA.ID;
                        chiTietPhieu.MaCau = 27;
                        chiTietPhieu.CauTraLoiFIX1 = nmr27.Text;
                        _repChiTietPhieu.InsertOne(chiTietPhieu);
                    }

                    //28
                    chiTietPhieu = _repChiTietPhieu.GetByPhieuID_MaCau(_PhieuA.ID, 28);
                    if (chiTietPhieu != null)
                    {
                        chiTietPhieu.CauTraLoiFIX1 = nmr28.Text;
                        //chiTietPhieu.CauTraLoiText1 = txtKhac25.Text;
                        _repChiTietPhieu.EditOne(chiTietPhieu);
                    }
                    else
                    {
                        chiTietPhieu = new BHXH.LinqRepository.ChiTietPhieu();
                        chiTietPhieu.PhieuID = phieuA.ID;
                        chiTietPhieu.MaCau = 28;
                        chiTietPhieu.CauTraLoiFIX1 = nmr28.Text;
                        //  chiTietPhieu.CauTraLoiText1 = txtKhac25.Text;
                        _repChiTietPhieu.InsertOne(chiTietPhieu);
                    }
                    //29
                    chiTietPhieu = _repChiTietPhieu.GetByPhieuID_MaCau(_PhieuA.ID, 29);
                    if (chiTietPhieu != null)
                    {
                        chiTietPhieu.CauTraLoiFIX1 = nmr29.Text;
                        _repChiTietPhieu.EditOne(chiTietPhieu);
                    }
                    else
                    {
                        chiTietPhieu = new BHXH.LinqRepository.ChiTietPhieu();
                        chiTietPhieu.PhieuID = phieuA.ID;
                        chiTietPhieu.MaCau = 29;
                        chiTietPhieu.CauTraLoiFIX1 = nmr29.Text;
                        _repChiTietPhieu.InsertOne(chiTietPhieu);
                    }

                    //30
                    chiTietPhieu = _repChiTietPhieu.GetByPhieuID_MaCau(_PhieuA.ID, 30);
                    if (chiTietPhieu != null)
                    {
                        chiTietPhieu.CauTraLoiFIX1 = nmr30.Text;
                        //chiTietPhieu.CauTraLoiText1 = txtKhac25.Text;
                        _repChiTietPhieu.EditOne(chiTietPhieu);
                    }
                    else
                    {
                        chiTietPhieu = new BHXH.LinqRepository.ChiTietPhieu();
                        chiTietPhieu.PhieuID = phieuA.ID;
                        chiTietPhieu.MaCau = 30;
                        chiTietPhieu.CauTraLoiFIX1 = nmr30.Text;
                        //  chiTietPhieu.CauTraLoiText1 = txtKhac25.Text;
                        _repChiTietPhieu.InsertOne(chiTietPhieu);
                    }


                    //31
                    chiTietPhieu = _repChiTietPhieu.GetByPhieuID_MaCau(_PhieuA.ID, 31);
                    if (chiTietPhieu != null)
                    {
                        chiTietPhieu.CauTraLoiFIX1 = nmr31.Text;
                        //chiTietPhieu.CauTraLoiText1 = txtKhac25.Text;
                        _repChiTietPhieu.EditOne(chiTietPhieu);
                    }
                    else
                    {
                        chiTietPhieu = new BHXH.LinqRepository.ChiTietPhieu();
                        chiTietPhieu.PhieuID = phieuA.ID;
                        chiTietPhieu.MaCau = 31;
                        chiTietPhieu.CauTraLoiFIX1 = nmr31.Text;
                        //  chiTietPhieu.CauTraLoiText1 = txtKhac25.Text;
                        _repChiTietPhieu.InsertOne(chiTietPhieu);
                    }

                    //32
                    chiTietPhieu = _repChiTietPhieu.GetByPhieuID_MaCau(_PhieuA.ID, 32);
                    if (chiTietPhieu != null)
                    {
                        chiTietPhieu.CauTraLoiFIX1 = nmr32.Text;
                        //chiTietPhieu.CauTraLoiText1 = txtKhac25.Text;
                        _repChiTietPhieu.EditOne(chiTietPhieu);
                    }
                    else
                    {
                        chiTietPhieu = new BHXH.LinqRepository.ChiTietPhieu();
                        chiTietPhieu.PhieuID = phieuA.ID;
                        chiTietPhieu.MaCau = 32;
                        chiTietPhieu.CauTraLoiFIX1 = nmr32.Text;
                        //  chiTietPhieu.CauTraLoiText1 = txtKhac25.Text;
                        _repChiTietPhieu.InsertOne(chiTietPhieu);
                    }

                    //33
                    chiTietPhieu = _repChiTietPhieu.GetByPhieuID_MaCau(_PhieuA.ID, 33);
                    if (chiTietPhieu != null)
                    {
                        chiTietPhieu.CauTraLoiFIX1 = nmr33.Text;
                        // chiTietPhieu.CauTraLoiText1 = txtKhac33.Text;
                        _repChiTietPhieu.EditOne(chiTietPhieu);
                    }
                    else
                    {
                        chiTietPhieu = new BHXH.LinqRepository.ChiTietPhieu();
                        chiTietPhieu.PhieuID = phieuA.ID;
                        chiTietPhieu.MaCau = 33;
                        chiTietPhieu.CauTraLoiFIX1 = nmr33.Text;
                        //chiTietPhieu.CauTraLoiText1 = txtKhac33.Text;
                        _repChiTietPhieu.InsertOne(chiTietPhieu);
                    }

                    //34
                    chiTietPhieu = _repChiTietPhieu.GetByPhieuID_MaCau(_PhieuA.ID, 34);
                    if (chiTietPhieu != null)
                    {
                        chiTietPhieu.CauTraLoiFIX1 = nmr34.Text;
                        //chiTietPhieu.CauTraLoiText1 = txtKhac34.Text;
                        _repChiTietPhieu.EditOne(chiTietPhieu);
                    }
                    else
                    {
                        chiTietPhieu = new BHXH.LinqRepository.ChiTietPhieu();
                        chiTietPhieu.PhieuID = phieuA.ID;
                        chiTietPhieu.MaCau = 34;
                        chiTietPhieu.CauTraLoiFIX1 = nmr34.Text;
                        //chiTietPhieu.CauTraLoiText1 = txtKhac34.Text;
                        _repChiTietPhieu.InsertOne(chiTietPhieu);
                    }


                    //35
                    chiTietPhieu = _repChiTietPhieu.GetByPhieuID_MaCau(_PhieuA.ID, 35);
                    if (chiTietPhieu != null)
                    {
                        chiTietPhieu.CauTraLoiFIX1 = nmr35.Text;
                        //chiTietPhieu.CauTraLoiText1 = txtKhac35.Text;
                        _repChiTietPhieu.EditOne(chiTietPhieu);
                    }
                    else
                    {
                        chiTietPhieu = new BHXH.LinqRepository.ChiTietPhieu();
                        chiTietPhieu.PhieuID = phieuA.ID;
                        chiTietPhieu.MaCau = 35;
                        chiTietPhieu.CauTraLoiFIX1 = nmr35.Text;
                        //chiTietPhieu.CauTraLoiText1 = txtKhac34.Text;
                        _repChiTietPhieu.InsertOne(chiTietPhieu);
                    }

                    //36
                    chiTietPhieu = _repChiTietPhieu.GetByPhieuID_MaCau(_PhieuA.ID, 36);
                    if (chiTietPhieu != null)
                    {
                        chiTietPhieu.CauTraLoiFIX1 = nmr36_1.Text;
                        chiTietPhieu.CauTraLoiText1 = txtKhac36_1.Text;

                        chiTietPhieu.CauTraLoiFIX2 = nmr36_2.Text;
                        chiTietPhieu.CauTraLoiText2 = txtKhac36_2.Text;

                        chiTietPhieu.CauTraLoiFIX3 = nmr36_3.Text;
                        chiTietPhieu.CauTraLoiFIX4 = nmr36_4.Text;
                        chiTietPhieu.CauTraLoiFIX5 = nmr36_5.Text;
                        chiTietPhieu.CauTraLoiFIX6 = nmr36_6.Text;
                        chiTietPhieu.CauTraLoiText3 = txtKhac36_3.Text;

                        chiTietPhieu.CauTraLoiFIX7 = nmr36_7.Text;
                        chiTietPhieu.CauTraLoiText7 = txtKhac36_7.Text;

                        chiTietPhieu.CauTraLoiFIX8 = nmr36_8.Text;
                        chiTietPhieu.CauTraLoiText8 = txtKhac36_8.Text;

                        chiTietPhieu.CauTraLoiFIX9 = nmr36_9.Text;
                        chiTietPhieu.CauTraLoiText9 = txtKhac36_9.Text;

                        _repChiTietPhieu.EditOne(chiTietPhieu);
                    }
                    else
                    {
                        chiTietPhieu = new BHXH.LinqRepository.ChiTietPhieu();
                        chiTietPhieu.PhieuID = phieuA.ID;
                        chiTietPhieu.MaCau = 36;

                        chiTietPhieu.CauTraLoiFIX1 = nmr36_1.Text;
                        chiTietPhieu.CauTraLoiText1 = txtKhac36_1.Text;

                        chiTietPhieu.CauTraLoiFIX2 = nmr36_2.Text;
                        chiTietPhieu.CauTraLoiText2 = txtKhac36_2.Text;

                        chiTietPhieu.CauTraLoiFIX3 = nmr36_3.Text;
                        chiTietPhieu.CauTraLoiFIX4 = nmr36_4.Text;
                        chiTietPhieu.CauTraLoiFIX5 = nmr36_5.Text;
                        chiTietPhieu.CauTraLoiFIX6 = nmr36_6.Text;
                        chiTietPhieu.CauTraLoiText3 = txtKhac36_3.Text;

                        chiTietPhieu.CauTraLoiFIX7 = nmr36_7.Text;
                        chiTietPhieu.CauTraLoiText7 = txtKhac36_7.Text;

                        chiTietPhieu.CauTraLoiFIX8 = nmr36_8.Text;
                        chiTietPhieu.CauTraLoiText8 = txtKhac36_8.Text;

                        chiTietPhieu.CauTraLoiFIX9 = nmr36_9.Text;
                        chiTietPhieu.CauTraLoiText9 = txtKhac36_9.Text;

                        _repChiTietPhieu.InsertOne(chiTietPhieu);
                    }
                    #endregion

                    SetEditState(EditState.Saved);
                    //transaction.Commit();
                    _SavedOK = true;
                }
                catch (Exception ex)
                {
                    //transaction.Rollback();
                    throw ex;
                }
                finally
                {
                    //con.Close();
                    txtMaPhieu.Focus();
                }
            }
            catch (Exception ex)
            {
                txtMaPhieu.Focus();
                _SavedOK = false;
                BHXH.Repository.FrmExceptionNotifier.ShowAndLog(ex);
                //  MessageBox.Show("Hệ thống",
            }
        }

        private void btnEdit_Click(object sender, EventArgs e)
        {
            Edit();
        }
        /// <summary>
        /// Edite data
        /// </summary>
        protected override void Edit()
        {
            SetEditState(BHXH.Repository.EditState.Modifying);
            txtMaPhieu.Focus();
        }

        private void btnSave_Click(object sender, EventArgs e)
        {
            Save();
        }

        private void btnClose_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btnSua_Click(object sender, EventArgs e)
        {
            Edit();
        }
        private void btnLuu_Click(object sender, EventArgs e)
        {
            Save();
        }
        private void btnDong_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}
